package com.wteam.dragon.system.util;

import cn.hutool.extra.cglib.CglibUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wteam.dragon.system.basebean.vo.PageVo;


/**
 * @Author 陈晓辉
 * @Date 2020/4/1 14:49
 */
public class BeanUtil{
    /**
     * 将一旧对象转化为新对象（相同字段的值会被继承）
     * @param entity 旧对象
     * @param clazz 新对象的class
     * @param <T> 返回新对象
     * @return
     */
    public static <T> T from(Object entity, Class<T> clazz) {
        //判断Vo是否为空!
        if (entity == null) {
            return null;
        }
        //判断PoClass是否为空
        if (clazz == null) {
            return null;
        }
        try {
            return CglibUtil.copy(entity, clazz);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 该方法只适用于mybatis plus的Page类
     * 将pageVo转化为pagePO
     * @param pageVo pageVo
     * @param <T> 要分页的类
     * @return 返回mybatis plus的Page类
     */
    public static <T> Page<T> fromPage(PageVo<T> pageVo){
        if(pageVo.getCurrent() == 0){
            pageVo = new PageVo<>();
            pageVo.setCurrent(1);
            pageVo.setSize(999);
        }
        Page<T> page = new Page<>();
        page.setCurrent(pageVo.getCurrent());
        page.setSize(pageVo.getSize());
        return page;
    }
}

